// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once // 防止头文件被重复包含

#include "Engine/DeveloperSettings.h" // 引入开发者设置基类
#include "Engine/EngineTypes.h" // 引入引擎类型

#include "ShooterCoreRuntimeSettings.generated.h" // 引入UE生成的代码头文件

class UObject; // 前向声明UObject类

/** 专用于ShooterCoreRuntime插件的运行时设置 */
UCLASS(config = Game, defaultconfig) // UE类宏，配置为Game类型，默认配置
class UShooterCoreRuntimeSettings : public UDeveloperSettings // 继承自UDeveloperSettings
{
	GENERATED_BODY() // UE代码生成宏

public:
	UShooterCoreRuntimeSettings(const FObjectInitializer& Initializer); // 构造函数声明

	ECollisionChannel GetAimAssistCollisionChannel() const { return AimAssistCollisionChannel; } // 获取瞄准辅助碰撞通道的常量成员函数

private:

	/**
	 * 应该使用哪个跟踪通道来查找可供瞄准辅助使用的目标。
	 * @see UAimAssistTargetManagerComponent::GetVisibleTargets
	 */
	UPROPERTY(config, EditAnywhere, Category = "Aim Assist") // UE属性宏，可配置，任意位置可编辑，分类为"Aim Assist"
	TEnumAsByte<ECollisionChannel> AimAssistCollisionChannel = ECollisionChannel::ECC_EngineTraceChannel5; // 瞄准辅助碰撞通道，默认为引擎跟踪通道5
};